The software industry has become one of the dynamic industries in the present day. The increasing dependency of the society on software driven systems has led the software product reliability to become one of the key factor in the industries. Major organizations in the industries are competing against each another to increase their market value while facing numerous challenges. One such challenge is the fast evolving technologies and enterprises. In order to stay competitive, each organization has to be quick in learning and implementing the new technologies to stay connected and competitive with other organizations.
The rapid influx of new technologies has thrown up new set of challenges in the current scenario. Due to the changing technical environment, the software environment is becoming complex with fragmentation in the technology front. In addition, with more number of users focussing on and adapting to agile methodology, the overall time for an application under development is condensing. These methodology demands for testing the application to ensure quality within a reduced cycle time for the applications. The existing testing approach follows an inward focus approach, where testing software applications usually involves use of traditional primary inputs. The traditional primary inputs focuses on testing the applications based on the deterministic factors like business requirement criticality, test parameters, quality aspects etc. However, with these traditional inputs, the existing testing techniques do not cover the test scenario involving unstructured data related to the software application and also does not cover test scenarios which can help in increasing the efficiency of testing a software application.
Thus, in the existing systems, the testing techniques for the software application do not provide a test strategy which improves the efficiency of testing by considering the users experiences and other unstructured data as one of the factors in determining the test strategy. Consequently, there is a need for a test strategy which identifies the test cases for an application considering the deterministic as well as non-deterministic aspects and generating optimized test cases for a software application.